package com.alipay.util;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.service.interfaced.AlipayInManager;
import com.alipay.service.interfaced.impl.AlipayInService;
import com.system.property.ZfbProperty;
/**
 * zhaozhenhua
 * @Function 
 * @Author zhaozhenhua
 * @Date 2018年4月20日
 */
public final class AliPayConfig {
	
	 /**
     * 私有的默认构造子，保证外界无法直接实例化
     */
    private AliPayConfig(){};
    
//    private static String ALIPAY_PUBLIC_KEY="admin/aliyun/alipay_public_key.txt";
//    private static String PRIVATE_KEY="admin/aliyun/private_key.txt";
    //private static String PUBLIC_KEY="admin/aliyun/public_key.txt";
    
//    private static String OPENAPIDOMAIN="admin/aliyun/public_key.txt";
//    private static String APPID="admin/aliyun/public_key.txt";
	 /**
     * 参数类型
     */
//    public static String PARAM_TYPE = "json";
    /**
     * 编码
     */
//    public static String CHARSET = "UTF-8";
    /**
     * 类级的内部类，也就是静态的成员式内部类，该内部类的实例与外部类的实例
     * 没有绑定关系，而且只有被调用到才会装载，从而实现了延迟加载
     */
    private static class SingletonHolder{
        /**
         * 静态初始化器，由JVM来保证线程安全 
         */
		private  static AlipayClient alipayClient = new DefaultAlipayClient(
				                                    ZfbProperty.get("open_api_domain"), ZfbProperty.get("appid"),
				                                    ZfbProperty.get("private_key"), "json", "utf-8",
				                                    ZfbProperty.get("alipay_public_key"), "RSA2");
		
		private  static AlipayInManager tradeService = new AlipayInService();
    }
    
    /**
     * 支付宝APP请求客户端实例
      * @Description
      * @Author zhaozhenhua
      * @date   2018年4月20日
      * @param pd
      * @return
      * @throws Exception
     */
    public static AlipayClient getAlipayClient(){
        return SingletonHolder.alipayClient;
    }
    
    
    
    
    /**
     * 电脑端预下单
     * @Author  科帮网
     * @return  AlipayTradeService
     * @Date	2017年7月27日
     * 更新日志
     * 2017年7月27日  科帮网 首次创建
     *
     */
    public static AlipayInManager getAlipayInService(){
        return SingletonHolder.tradeService;
    }
}
